﻿//using common;
//using Letter.IO;
//using Letter.Tcp;
//using System;
//using System.Buffers;
//using System.Text;

//namespace tcp_text_2
//{
//    internal abstract class AConnection : ADefaultFixedHeaderBEConnection<Data>
//    {
//        public abstract string Name { get; }

//        public override void OnConnectionActive(ISession<Data> session)
//        {
//            Console.WriteLine($"{Name}----->>连接");
//        }

//        public override void OnConnectionInactive(ISession<Data> session)
//        {
//            Console.WriteLine($"{Name}----->>断开");
//        }

//        public override void OnConnectionException(ISession<Data> session, Exception ex)
//        {
//            Console.WriteLine($"{Name}----->>异常：" + ex.ToString());
//        }


//        int count = 0;
//        public override void Deserialize(ref ReadOnlySequence<byte> buf)
//        {
//            var str = Encoding.Default.GetString(buf);
//            var package = System.Text.Json.JsonSerializer.Deserialize<Data>(str);

//            Console.WriteLine($"{Name}----->>读取：" + package.Id + "===" + count);
//            count++;
//        }

//        public override ReadOnlyMemory<byte> Serialize(Data item)
//        {

//            Console.WriteLine($"{Name}----->>写入：" + item.Id);

//            return System.Text.Json.JsonSerializer.SerializeToUtf8Bytes(item);

            
//        }

//        //public void OnConnectionRead(ISession<Data> session, ref BytesReader reader)
//        //{
//        //    if (reader.Length == 0)
//        //    {
//        //        return;
//        //    }

//        //    Console.WriteLine(reader.Length);
//        //    var buf = reader.ReadBuffer((int) reader.Length);
//        //    var str = Encoding.Default.GetString(buf);
//        //    var package = System.Text.Json.JsonSerializer.Deserialize<Data>(str);

//        //    Console.WriteLine($"{Name}----->>读取：" + package.Id);
//        //}

//        //public void OnConnectionWrite(ISession<Data> session, ref BytesWriter writer, Data pack)
//        //{
//        //    var bytes = System.Text.Json.JsonSerializer.SerializeToUtf8Bytes(pack);
//        //    writer.WriteMemory(bytes);

//        //    Console.WriteLine($"{Name}----->>写入：" + pack.Id);
//        //}
//    }
//}
